
Agregar una class al input Vtiger
| Fecha de creación | |
|---|---|
| Revisión | 1.0 |
| Area | Developer |
| Propietario | Creantis |
| REV. | FECHA | BREVE DESCRIPCIÓN DEL CAMBIO | AUTOR |
| 1.0 | 16-10-2023 | Crear documento | CGARCIA |
1. Requerimientos
- Usar VSCODE
- Tener Incorporado el complemento del repocitorio creantis en la instancia
- Incluir las mejoras de vtiger creado por creantis (link version 7.5)
CREATE TABLE IF NOT EXISTS `vt_field_input` (
`idvt_field_input` int(11) NOT NULL AUTO_INCREMENT,
`classfield` text DEFAULT NULL,
`fieldid` int(11) NOT NULL,
PRIMARY KEY (`idvt_field_input`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_general_ci
2. Editar en VSCODE por Buscador
Buscar todos los archivos *.tpl que contengan la siguiente frase class="inputElement por class="inputElement {$FIELD_MODEL->get('classfield')}
Example
Buscar el archivo vtlib/Vtiger/Field.php que contengan la siguiente frase SELECT * FROM vtiger_field por SELECT * FROM vtiger_field NATURAL LEFT JOIN vt_field_input
Example
3. Incluir lineas de codigo en Vtiger
# Archivo : vtlib/Vtiger/FieldBasic.php
function initialize($valuemap, $moduleInstance=false, $blockInstance=false) {
$this->id = $valuemap['fieldid'];
$this->name = $valuemap['fieldname'];
$this->label= $valuemap['fieldlabel'];
$this->column = $valuemap['columnname'];
$this->table = $valuemap['tablename'];
$this->uitype = $valuemap['uitype'];
$this->typeofdata = $valuemap['typeofdata'];
$this->helpinfo = $valuemap['helpinfo'];
$this->masseditable = $valuemap['masseditable'];
$this->displaytype = $valuemap['displaytype'];
$this->generatedtype = $valuemap['generatedtype'];
$this->readonly = $valuemap['readonly'];
$this->presence = $valuemap['presence'];
$this->defaultvalue = $valuemap['defaultvalue'];
$this->quickcreate = $valuemap['quickcreate'];
$this->sequence = $valuemap['sequence'];
$this->summaryfield = $valuemap['summaryfield'];
$this->isunique = $valuemap['isunique'];
$this->classfield = $valuemap['classfield']; // incluir los campos de la tabla
$this->block= $blockInstance? $blockInstance : Vtiger_Block::getInstance($valuemap['block'], $moduleInstance);
$this->headerfield = $valuemap['headerfield'];
}4. Gestionar Class por Complemento
Ingresar al menu en la opcion de la validaciones de campos
5. Conclusión
Esto permitira enlazar las dos tablas e incluir las class para hacer validaciones libres o ya configuradas en todos los campos o inputs que sea declarada

al inspeccionar el elemento podemo vizualizar que se ha incluido la class en el campo

5. Notas
Las pruebas realizadas se hicienron el la version de 7.5 en la instancia https://750.creantis.dev/750devmigra02/
El archivo de complemento/module/validaciones/controller/validaciones.js se importa en el head de vtiger por el archivo del las mejoras resources/CreantisJsHeader.js con la funcion cargarArchivoJS




